// 初始化编辑TALBEL
$().ready(function() {

	// 初始化下拉列表框
	initProvince();
	initCity();
	initDistrict();
	// 监听下拉列表
	$('#province').change(onProvinceChange);
	$('#city').change(onCityChange);
	// 监听保存
	$('#add').click(saveData);
	// 加载数据
	loadData();
});



// 当省份下拉列表框改变
function onProvinceChange() {
	var proCode = $('#province').val();
	var city = $('#city');
	var district = $('#district');
	city.empty();// 清空
	initCity();// 初始化
	district.empty();
	initDistrict();
	if (proCode) {// 选择了新的省份后修改城市下拉列表
		$.each(CITY, function(i, obj) {
			if (obj[0].startWith(proCode)) {
				city.append('<option value=' + obj[0] + '>' + obj[1]
						+ '</option>');
			}
		});
	}
}

// 当城市下拉列表框改变
function onCityChange() {
	var cityCode = $('#city').val();
	var district = $('#district');
	district.empty();
	initDistrict();
	if (cityCode) {// 选择了新的省份后修改城市下拉列表
		$.each(DISTRICT, function(i, obj) {
			if (obj[0].startWith(cityCode)) {
				district.append('<option value=' + obj[0] + '|'
						+ obj[1] + '>' + obj[1] + '</option>');
			}
		});
	}
}

function initProvince() {
	// PROVINCE defined city-list.js
	var province = $('#province');
	province.append('<option>--请选择省份--</option>');
	$.each(PROVINCE, function(i, obj) {
		province.append('<option value=' + obj[0] + '>' + obj[1]
				+ '</option>');
	});
}

function initCity() {
	$('#city').append('<option>--请选择城市--</option>');
}

function initDistrict() {
	$('#district').append('<option>--请选择区县--</option>');
}

// 发送请求保存
function saveData() {
	// 1.验证合法性
	if (!$('#district').val()) {
		alert('请选择订阅的城市!');
		return;
	}
	// 2.保存数据
	var url = "/weatherSub.do?method=save";
	var callback = function(json) {
		if (json.success) {
			loadData();
		} else {
			// TODO 提示错误
		}
	};
	var codeName = $('#district').val().split('|');
	var data = {
		cityCode : codeName[0],
		cityName : codeName[1]
	};
	$.post(url, data, callback, 'json');
}

// 行模板
var template = '<tr name="procity"><td class="hidden" name="id" ></td>'
		+ '<td name="prov"></td><td name="city"></td>'
		+ '<td name="dist"></td>'
		+ '<td name="notifyMode" class="hidden"></td>'
		+ '<td><a href="#"  name="dlt">删除</a></td>' + ' </tr>';

// 列出所有订阅
function loadData() {
	// 清空列表
	$('tr[name="procity"]').remove();

	// 列出所有数据
	var url = "/weatherSub.do?method=list";
	var callback = function(json) {
		if (json.success) {
			Jade.appendTr($('tbody'), template, formatData(json.result));
			bindDelete();
		} else {
			alert('系统错误,请联系客服');
		}
	};
	$.post(url, {}, callback, 'json');
}

function formatData(result) {
	var list = [];
	$.each(result, function(i, obj) {
		var distCode = obj.cityCode;
		var distName = obj.cityName;
		var provName = null;
		var cityName = null;
		$.each(PROVINCE, function(i, obj) {
			if (distCode.startWith(obj[0])) {
				provName = obj[1];
				return false;
			}
		});
		$.each(CITY, function(i, obj) {
			if (distCode.startWith(obj[0])) {
				cityName = obj[1];
				return false;
			}
		});
		list.push({
			id : obj.id,
			prov : provName,
			city : cityName,
			dist : distName
		});
	});
	return list;
}

// 给delete按钮绑定事件
function bindDelete(){
	$("a[name='dlt']").bind("click", function(){
		var id = $($(this).parent().parent().children()[0]).html();
		  deleteData(id);
		}); 
}

// 删除行
function deleteData(id) {
	if (id) {
		var url = "/weatherSub.do?method=remove";
		var callback = function(json) {
			if (json.success) {
				
			} else {
				alert('系统错误,请联系客服');
			}
			loadData();// 重新加载
		};
		$.post(url, {id:id}, callback, 'json');
	}
}